//package com.tank.demo.oldVersion;
//
//
//import com.tank.demo.abstractFactory.BaseTank;
//import com.tank.demo.frame.TankFrame;
//import com.tank.demo.myenum.DirEnum;
//import com.tank.demo.myenum.TankGroupEnum;
//import com.tank.demo.strategy.FireStrategy;
//import com.tank.demo.utils.PropertyMgr;
//import com.tank.demo.utils.ResourceMgr;
//import lombok.*;
//
//import java.awt.*;
//import java.util.Random;
//
//@Getter
//@Setter
//@AllArgsConstructor
//@NoArgsConstructor
////@ToString
//public class Tank extends BaseTank {
//
//    private int x, y;
//    public static final int width = ResourceMgr.myTankL.getWidth(), height = ResourceMgr.myTankL.getWidth();
//    private DirEnum dir;
//    private static final Integer SPEED = 10;
//    private boolean moving = false;
//    private TankGroupEnum group;
//    TankFrame tankFrame;
//
//    public void move() {
//        switch (dir) {
//            case UP:
//                y -= SPEED;
//                break;
//            case DOWN:
//                y += SPEED;
//                break;
//            case LEFT:
//                x -= SPEED;
//                break;
//            case RIGHT:
//                x += SPEED;
//                break;
//        }
//    }
//
//    public void paint(Graphics g) {
//        switch (dir) {
//            case UP:
//                g.drawImage(this.group == TankGroupEnum.BLUE ? ResourceMgr.enemyTankU : ResourceMgr.myTankU, x, y, null);
//                break;
//            case DOWN:
//                g.drawImage(this.group == TankGroupEnum.BLUE ? ResourceMgr.enemyTankD : ResourceMgr.myTankD, x, y, null);
//                break;
//            case LEFT:
//                g.drawImage(this.group == TankGroupEnum.BLUE ? ResourceMgr.enemyTankL : ResourceMgr.myTankL, x, y, null);
//                break;
//            case RIGHT:
//                g.drawImage(this.group == TankGroupEnum.BLUE ? ResourceMgr.enemyTankR : ResourceMgr.myTankR, x, y, null);
//                break;
//        }
//        if (moving) move();
//        borderDetection();
//
//        if (group == TankGroupEnum.RED) return;
//        if (new Random().nextInt(100) > 95) {
//            randomDir();
//        }
//        moving = new Random().nextInt(100) > 80 ? true : false;
//
//        if (new Random().nextInt(100) > 93) {
//            try {
//                fire((FireStrategy) Class.forName(PropertyMgr.getInstance().getKey("eneryTankFireStrategy")).newInstance());
//            } catch (Exception e){
//                e.printStackTrace();
//            }
//        }
//
//    }
//
//    private void randomDir() {
//        setDir(DirEnum.values()[new Random().nextInt(4)]);
//    }
//
//    private void borderDetection() {
//        if (this.x < 2) this.x = 2;
//        if (this.x > TankFrame.FRAME_WIDTH - this.width) this.x = TankFrame.FRAME_WIDTH - this.width;
//        if (this.y < 32) this.y = 32;
//        if (this.y > TankFrame.FRAME_HEIGHT - this.height) this.y = TankFrame.FRAME_HEIGHT - this.height;
//    }
//
//    public void fire(FireStrategy fireStrategy) {
////        fireStrategy.fire(this);
////    }
//
//    public void die() {
//        tankFrame.enemyTanks.remove(this);
//    }
//
//}
